<html>
<head><meta charset="utf-8"><title>rls / rust-analyzer planing · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html">rls / rust-analyzer planing</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="176094563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176094563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176094563">(Sep 19 2019 at 12:40)</a>:</h4>
<p>A placeholder stream for rls/rust-analyer planing meeting. Link to event: <a href="https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NzZmMnRoYzQ2MnYxcDZnY28zcHA5cGhyaWsgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com" target="_blank" title="https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NzZmMnRoYzQ2MnYxcDZnY28zcHA5cGhyaWsgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com">https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NzZmMnRoYzQ2MnYxcDZnY28zcHA5cGhyaWsgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com</a></p>
<p>Goal of the meeting: find out medium-term plan for rls and rust analyzer: support both, focus on one, merge?</p>



<a name="176094606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176094606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176094606">(Sep 19 2019 at 12:40)</a>:</h4>
<p>cc <span class="user-group-mention" data-user-group-id="1060">@WG-rls2.0</span></p>



<a name="176099935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176099935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176099935">(Sep 19 2019 at 13:39)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> that link goes to the Compiler Team Triage Meeting... that's not it, right?</p>



<a name="176100046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176100046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176100046">(Sep 19 2019 at 13:40)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> indeed, thanks, fixed!</p>



<a name="176114204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176114204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176114204">(Sep 19 2019 at 16:00)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> that's in an hour, right? I'm confused if Google inferred a good time zone here</p>



<a name="176114913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176114913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176114913">(Sep 19 2019 at 16:08)</a>:</h4>
<p>Right, it's in an hour</p>



<a name="176115114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176115114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176115114">(Sep 19 2019 at 16:10)</a>:</h4>
<p>okay, thanks</p>



<a name="176119366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119366">(Sep 19 2019 at 17:00)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="176119383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119383">(Sep 19 2019 at 17:00)</a>:</h4>
<p>Hello!</p>



<a name="176119410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119410">(Sep 19 2019 at 17:01)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> , <span class="user-mention" data-user-id="116009">@nikomatsakis</span> are you around?</p>



<a name="176119558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119558">(Sep 19 2019 at 17:02)</a>:</h4>
<p>yeah</p>



<a name="176119759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119759">(Sep 19 2019 at 17:05)</a>:</h4>
<p>ping <span class="user-mention" data-user-id="116009">@nikomatsakis</span>  :)</p>



<a name="176119846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119846">(Sep 19 2019 at 17:06)</a>:</h4>
<p>I'm here now</p>



<a name="176119852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119852">(Sep 19 2019 at 17:06)</a>:</h4>
<p>sorry, had to grab coffee</p>



<a name="176119892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119892">(Sep 19 2019 at 17:06)</a>:</h4>
<p>Ok, so let's get started</p>



<a name="176119968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176119968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176119968">(Sep 19 2019 at 17:07)</a>:</h4>
<p>Maybe start by outlining our goals?</p>



<a name="176120002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120002">(Sep 19 2019 at 17:08)</a>:</h4>
<p>Right</p>



<a name="176120046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120046">(Sep 19 2019 at 17:08)</a>:</h4>
<p>Maybe even from outlining a problem, as I am not sure what the right goal is</p>



<a name="176120059"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120059" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120059">(Sep 19 2019 at 17:08)</a>:</h4>
<p>The probelm is that we have two independent code bases, rust-analyzer and rls</p>



<a name="176120089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120089">(Sep 19 2019 at 17:08)</a>:</h4>
<p>Yep :)</p>



<a name="176120132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120132">(Sep 19 2019 at 17:09)</a>:</h4>
<p>That is bad for two reasons:</p>
<ul>
<li>we need more resources to support them </li>
<li>users are confused what is the current best option</li>
</ul>



<a name="176120290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120290">(Sep 19 2019 at 17:10)</a>:</h4>
<p>Yep</p>



<a name="176120300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120300">(Sep 19 2019 at 17:10)</a>:</h4>
<p>Unfortunately it is confusing, indeed. I'd like for us to find a common direction</p>



<a name="176120301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120301">(Sep 19 2019 at 17:10)</a>:</h4>
<p>I'm particularly concerned about users</p>



<a name="176120308"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120308" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120308">(Sep 19 2019 at 17:10)</a>:</h4>
<p>Though resources are bad too</p>



<a name="176120321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120321">(Sep 19 2019 at 17:11)</a>:</h4>
<p>I guess I think there is a third bullet of kind of "internal team cohesion"</p>



<a name="176120351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120351">(Sep 19 2019 at 17:11)</a>:</h4>
<p>Yeah, not only the users are confused, we are also confused :)</p>



<a name="176120354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120354">(Sep 19 2019 at 17:11)</a>:</h4>
<p>luckily we're all friendly folk, but this is the kind of split from which bad things <em>could</em> emerge :)</p>



<a name="176120392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120392">(Sep 19 2019 at 17:11)</a>:</h4>
<p>Maybe worth sketching out what some "end states" might look like? I don't mean <em>all the way</em> to the end, but kind of "intermediate end state"</p>



<a name="176120467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120467">(Sep 19 2019 at 17:12)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="133169">@matklad</span> you were hypothesizing, for example, that we could maybe have a unified RLS which uses (say) save-analysis and RLS plumbing for somethings, and rust-analyzer for the rest?</p>



<a name="176120472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120472">(Sep 19 2019 at 17:12)</a>:</h4>
<p>Note that, for rust-analyzer, at the moment, there's this important characteristic: it prioritizes experementation over direct user's satisfaction</p>



<a name="176120496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120496">(Sep 19 2019 at 17:12)</a>:</h4>
<p>And I think that's a quality we'd like to preserve</p>



<a name="176120527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120527">(Sep 19 2019 at 17:13)</a>:</h4>
<p>Speaking of the medium-term goal mentioned in the OP, I'd like to bring up the elephant in the room, which is possibility of moving off the RLS</p>



<a name="176120545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120545">(Sep 19 2019 at 17:13)</a>:</h4>
<p>Truthfully it'd be a shame to abandon the existing setup, and I like the fact that it's slow (well maybe not that) but correct</p>



<a name="176120563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120563">(Sep 19 2019 at 17:13)</a>:</h4>
<p>which sort of ties in with the experimental nature of the RA</p>



<a name="176120647"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120647" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120647">(Sep 19 2019 at 17:14)</a>:</h4>
<p>Right so I guess in broad strokes we could either (a) give up on existing RLS, (b) try to combine somehow with r-a, or (c) give up on r-a, but I think we're not really ready for a or c, and we're here to discuss if there is a fruitful version of (b)?</p>



<a name="176120651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120651">(Sep 19 2019 at 17:14)</a>:</h4>
<p>I think that the RA experiment has shown that incremental infra alone will does not offset the cost of the current architecture of the RLS - change -&gt; rebuild the entire compilation DB</p>



<a name="176120684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120684">(Sep 19 2019 at 17:14)</a>:</h4>
<p>I'm not quite sure <span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> what that statement means, can you rephrase?</p>



<a name="176120694"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120694" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120694">(Sep 19 2019 at 17:15)</a>:</h4>
<p>yes, sorry, meant to follow that up</p>



<a name="176120704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120704">(Sep 19 2019 at 17:15)</a>:</h4>
<p>I don't think we will really abandon existing things, even if we move off completely from RLS. </p>
<p>For example, IIRC <code>cargo check</code> is the result of RLS work, and it's here to stay. I also feel that save-analysis is a great tool for offline processing, and that, for example, we should market <code>cargo src</code> more</p>



<a name="176120763"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120763" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120763">(Sep 19 2019 at 17:15)</a>:</h4>
<p>I like the fact that RLS is already shipped with Rustup and works directly with rustc itself (in terms of feature "parity")</p>



<a name="176120816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120816">(Sep 19 2019 at 17:16)</a>:</h4>
<p>but it shows that we can't maintain the current architecture anymore</p>



<a name="176120865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120865">(Sep 19 2019 at 17:16)</a>:</h4>
<p>so I'd like to propose to maybe move the RLS to leverage the now-existing infrastructure for queries instead of relying on save-analysis</p>



<a name="176120930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120930">(Sep 19 2019 at 17:17)</a>:</h4>
<p>this would be the more stable of the option whereas the RA could still experiment and find out ways how we could librarify the stuff on the rustc side itself</p>



<a name="176120946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120946">(Sep 19 2019 at 17:17)</a>:</h4>
<p>but that doesn't solve the 'should I use tool A or B' problem...</p>



<a name="176120965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120965">(Sep 19 2019 at 17:17)</a>:</h4>
<blockquote>
<p>but it shows that we can't maintain the current architecture anymore</p>
</blockquote>
<p>what shows that?</p>



<a name="176120988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176120988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176120988">(Sep 19 2019 at 17:18)</a>:</h4>
<p>(disregard, I may have went in the wrong direction)</p>



<a name="176121057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121057">(Sep 19 2019 at 17:18)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I think one example is hiridication and recent ICE fixes in the save-analysis generation</p>



<a name="176121086"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121086" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121086">(Sep 19 2019 at 17:18)</a>:</h4>
<p>it being an AST walker with additional setup is slightly dated and it shows; I wonder if we could find a way to just use query system directly</p>



<a name="176121089"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121089" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121089">(Sep 19 2019 at 17:18)</a>:</h4>
<p>OK, I thought that might be what you meant</p>



<a name="176121169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121169">(Sep 19 2019 at 17:19)</a>:</h4>
<p>I don't think not touching existing setup is required, even if we pursue the offline indexing feature a la LSIF/current save-analysis index file</p>



<a name="176121188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121188">(Sep 19 2019 at 17:19)</a>:</h4>
<p>existing setup = save-analysis, right?</p>



<a name="176121236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121236">(Sep 19 2019 at 17:20)</a>:</h4>
<p>Certainly in the past we had thought about trying to convert save-analysis to be built from queries</p>



<a name="176121254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121254">(Sep 19 2019 at 17:20)</a>:</h4>
<p>as an intermediate step</p>



<a name="176121265"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121265" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121265">(Sep 19 2019 at 17:20)</a>:</h4>
<p>that seems <em>somewhat</em> orthogonal tho</p>



<a name="176121280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121280">(Sep 19 2019 at 17:20)</a>:</h4>
<p>Yes, let's get back to that later</p>



<a name="176121283"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121283" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121283">(Sep 19 2019 at 17:20)</a>:</h4>
<p>(well I guess it depends on the specifics of what we do)</p>



<a name="176121319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121319">(Sep 19 2019 at 17:21)</a>:</h4>
<p>Yeah, I guess it makes sense to canvas overall approaches available to us</p>



<a name="176121351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121351">(Sep 19 2019 at 17:21)</a>:</h4>
<p>In any case, I'm certainly curious if there is a way to put the two systems into one unified harness, and what that would mean. I definitely agree with <span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> we want to preserve the "distributed through rustup" and "correct" nature, and agree with <span class="user-mention" data-user-id="124287">@mw</span> that -- ideally -- we'd continue to enable experimentation in r-a without being locked into "back-compat".</p>



<a name="176121356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121356">(Sep 19 2019 at 17:21)</a>:</h4>
<p>er, <span class="user-mention" data-user-id="133169">@matklad</span> I mean, not <span class="user-mention" data-user-id="124287">@mw</span></p>



<a name="176121484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121484">(Sep 19 2019 at 17:23)</a>:</h4>
<p>an obvious approach would be to use RA from RLS as a library, for completions, code actions etc.</p>



<a name="176121511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121511">(Sep 19 2019 at 17:23)</a>:</h4>
<p>it might use a lot of memory to run both RA and the compiler in parallel, of course ;)</p>



<a name="176121517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121517">(Sep 19 2019 at 17:23)</a>:</h4>
<p>one idea that was hovering around was to use RA as the completion engine in the RLS - you could opt-in into the experimental work and would clearly see more improvements over the existing Racer, while still it being a separate thing</p>



<a name="176121541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121541">(Sep 19 2019 at 17:23)</a>:</h4>
<p>or, the other way around, add the RLS out-of-process compilation to RA</p>



<a name="176121610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121610">(Sep 19 2019 at 17:24)</a>:</h4>
<p>Another interesting idea is, from RA side, to lean exclusively on <code>cargo check</code> to get correct error highlighting.</p>



<a name="176121618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121618">(Sep 19 2019 at 17:24)</a>:</h4>
<p>wouldn't it kill the main benefit which is latency?</p>



<a name="176121655"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121655" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121655">(Sep 19 2019 at 17:25)</a>:</h4>
<p>I think the main benefit over racer would be better completions ;)</p>



<a name="176121676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121676">(Sep 19 2019 at 17:25)</a>:</h4>
<blockquote>
<p>wouldn't it kill the main benefit which is latency?</p>
</blockquote>
<p>well, just for error reporting I guess</p>



<a name="176121698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121698">(Sep 19 2019 at 17:25)</a>:</h4>
<p>I meant RLS in RA</p>



<a name="176121717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121717">(Sep 19 2019 at 17:25)</a>:</h4>
<p>I think <code>cargo check</code> is sort of good enough now, right? <span class="user-mention" data-user-id="133169">@matklad</span></p>



<a name="176121729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121729">(Sep 19 2019 at 17:26)</a>:</h4>
<p>yeah</p>



<a name="176121730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121730">(Sep 19 2019 at 17:26)</a>:</h4>
<p>with obvious pitfall of not being able to use the in-memory text buffers</p>



<a name="176121796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121796">(Sep 19 2019 at 17:26)</a>:</h4>
<p>(<a href="https://github.com/rust-lang/rust/issues/59976" target="_blank" title="https://github.com/rust-lang/rust/issues/59976">https://github.com/rust-lang/rust/issues/59976</a> would be nice to have)</p>



<a name="176121799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121799">(Sep 19 2019 at 17:26)</a>:</h4>
<p>that, and it's only supported in the VSCode plugin, and we can't provide code actions for the fixes provided by rustc (I think?)</p>



<a name="176121804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121804">(Sep 19 2019 at 17:26)</a>:</h4>
<p>so, besides error reporting, RLS today is using save-analysis for things like jump-to-def, right?</p>



<a name="176121808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121808">(Sep 19 2019 at 17:26)</a>:</h4>
<p>It lands us in a pretty sweet spot:</p>
<ul>
<li>error reporting is precise</li>
<li>completion is fast</li>
<li>we don't depend on rustc direclty</li>
</ul>



<a name="176121836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121836">(Sep 19 2019 at 17:27)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> we can provide code actions. In fact, VS Code plugin already implements it</p>



<a name="176121864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121864">(Sep 19 2019 at 17:27)</a>:</h4>
<p><span class="user-mention" data-user-id="129457">@Florian Diebold</span> we translate these fixes in rustc diagnostics to code actions in the RLS</p>



<a name="176121871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121871">(Sep 19 2019 at 17:27)</a>:</h4>
<p>but it is 100% true that we should move <code>cargo check</code> from typescript to rust</p>



<a name="176121951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121951">(Sep 19 2019 at 17:28)</a>:</h4>
<blockquote>
<p>so, besides error reporting, RLS today is using save-analysis for things like jump-to-def, right?</p>
</blockquote>
<p>Yeah, RLS uses index for everything except completion</p>



<a name="176121974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176121974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176121974">(Sep 19 2019 at 17:28)</a>:</h4>
<p>if Racer is enabled, we also enable a fallback go-to-def if index doesn't find anything</p>



<a name="176122062"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122062" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122062">(Sep 19 2019 at 17:29)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> I guess supporting other build systems becomes a problem but I feel like it's 2018 all over again and it's a non-issue for now (at least in the experimental phase)</p>



<a name="176122066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122066">(Sep 19 2019 at 17:29)</a>:</h4>
<blockquote>
<p>It lands us in a pretty sweet spot:</p>
</blockquote>
<p>There's still a pretty important thing missing in this setup: find usages. You can't use <code>cargo check</code> for <code>find usages</code>, and the feature in <code>rust-analyzer</code> simply does not exist yet :) (and, when we add it, it woun't be precise for a long time)</p>



<a name="176122076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122076">(Sep 19 2019 at 17:29)</a>:</h4>
<p>(if we decide to only lean on <code>cargo check</code>, that is)</p>



<a name="176122218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122218">(Sep 19 2019 at 17:31)</a>:</h4>
<p>so it's surprising how the critical stuff user wants most of the time is name resolution - that alone gives us jump to def, find all refs (which possibly powers rename) etc.</p>



<a name="176122222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122222">(Sep 19 2019 at 17:31)</a>:</h4>
<p>Yeah, the fact that <code>cargo check</code> won't work for facebook is problem though... But I think we can just configure the <code>cargo check</code> command line, so that FB replaces it with <code>buck build</code>?</p>



<a name="176122232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122232">(Sep 19 2019 at 17:31)</a>:</h4>
<p>so, adding <code>cargo check</code> check to r-a doesn't really require anything from the existing RLS infra, except (I guess) maybe the VFS supoprt?</p>



<a name="176122259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122259">(Sep 19 2019 at 17:31)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> correct!</p>



<a name="176122273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jeremy Kolb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122273">(Sep 19 2019 at 17:31)</a>:</h4>
<p>what does save-analysis give that ra's query infra can't do?</p>



<a name="176122339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122339">(Sep 19 2019 at 17:32)</a>:</h4>
<p>correct "find usages" and "rename" are big ones</p>



<a name="176122352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122352">(Sep 19 2019 at 17:32)</a>:</h4>
<p>(it is generated by the compiler, also)</p>



<a name="176122356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122356">(Sep 19 2019 at 17:32)</a>:</h4>
<p>(RLS also reimplements the VFS support for rustc for the purposes of out-of-process compilation)</p>



<a name="176122412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122412">(Sep 19 2019 at 17:32)</a>:</h4>
<p>I thought the vision that <span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> painted of "use r-a instead of racer for completions" was interesting. How far is that from "add cargo-check to r-a"?</p>



<a name="176122460"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122460" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122460">(Sep 19 2019 at 17:33)</a>:</h4>
<p>I guess the main difference is that we'd still be using save-analysis to do things like find all usages etc</p>



<a name="176122474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122474">(Sep 19 2019 at 17:33)</a>:</h4>
<p>Yes</p>



<a name="176122504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122504">(Sep 19 2019 at 17:33)</a>:</h4>
<p>one immediate concern is that we'd probably duplicate vfs/projet layout detection etc. setup</p>



<a name="176122575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122575">(Sep 19 2019 at 17:34)</a>:</h4>
<p>And the vfs itself.</p>



<a name="176122576"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122576" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122576">(Sep 19 2019 at 17:34)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> does RA support one-shot queries a la racer? e.g. "complete at line X col Y"</p>



<a name="176122622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122622">(Sep 19 2019 at 17:34)</a>:</h4>
<p>Well, it does, but if you don't have a persistent process, that would mean waiting a minute for the initial analysis</p>



<a name="176122635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122635">(Sep 19 2019 at 17:34)</a>:</h4>
<p>ah shoot.</p>



<a name="176122658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122658">(Sep 19 2019 at 17:35)</a>:</h4>
<p>it'd be good if we juts provide the project layout and the vfs to the RA itself</p>



<a name="176122677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122677">(Sep 19 2019 at 17:35)</a>:</h4>
<p>I guess the simplest hack to integrate ra and RLS would be to spin ra <em>process</em> and relay some LSP messages to it :)</p>



<a name="176122782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122782">(Sep 19 2019 at 17:36)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> you can do that, there's nothing in the core of ra (<code>ra_ide_api</code> crate) that cares about project structure or vfs</p>



<a name="176122795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122795">(Sep 19 2019 at 17:36)</a>:</h4>
<p>but the obvious problem is that rls's vfs is not like ra's vfs.</p>



<a name="176122802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122802">(Sep 19 2019 at 17:36)</a>:</h4>
<blockquote>
<p>I guess the simplest hack to integrate ra and RLS would be to spin ra <em>process</em> and relay some LSP messages to it :)</p>
</blockquote>
<p>lol :)</p>



<a name="176122804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122804">(Sep 19 2019 at 17:36)</a>:</h4>
<p>it actually... makes sense in a way <span aria-label="grinning" class="emoji emoji-1f600" role="img" title="grinning">:grinning:</span> this would allow us to choose between Racer or RA for the completion engine</p>



<a name="176122822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122822">(Sep 19 2019 at 17:37)</a>:</h4>
<p><span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span> hm, but, if we move to lazy file loading, that would make the two vfses pretty close</p>



<a name="176122831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122831">(Sep 19 2019 at 17:37)</a>:</h4>
<p>the user wouldn't have to pay the cost (we'd make it opt-in)</p>



<a name="176122868"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122868" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122868">(Sep 19 2019 at 17:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I am a big fan of just spinning things in another process :D</p>



<a name="176122885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122885">(Sep 19 2019 at 17:37)</a>:</h4>
<p>yeah I mean it's kind of brilliant :)</p>



<a name="176122890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122890">(Sep 19 2019 at 17:37)</a>:</h4>
<p>I imagine this would work pretty well - we could use it as a fallback as well</p>



<a name="176122940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122940">(Sep 19 2019 at 17:38)</a>:</h4>
<p>the same way we use Racer</p>



<a name="176122954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122954">(Sep 19 2019 at 17:38)</a>:</h4>
<p>it obviously doesn't solve the "2 codebases" scenario</p>



<a name="176122981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122981">(Sep 19 2019 at 17:38)</a>:</h4>
<p>but it's not like anything really will besides further "library-ification" ? I guess maybe we might be able to merge more things (notably VFS)</p>



<a name="176122992"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176122992" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176122992">(Sep 19 2019 at 17:38)</a>:</h4>
<p>well one idea would be to ship common infrastructure crates like vfs</p>



<a name="176123005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123005">(Sep 19 2019 at 17:38)</a>:</h4>
<p>right, basically "library-ify" those</p>



<a name="176123072"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123072" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123072">(Sep 19 2019 at 17:39)</a>:</h4>
<p>seems like a good direction =)</p>



<a name="176123079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123079">(Sep 19 2019 at 17:39)</a>:</h4>
<p>VFS is a hard target for librarification, as the right design is not really well understood</p>



<a name="176123087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123087">(Sep 19 2019 at 17:40)</a>:</h4>
<p>it's not that much of code either</p>



<a name="176123178"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123178" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123178">(Sep 19 2019 at 17:40)</a>:</h4>
<p>it might be cool to share the LS protocol implementaiton itself though</p>



<a name="176123194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123194">(Sep 19 2019 at 17:40)</a>:</h4>
<p>our is published at <a href="https://crates.io/crates/lsp-server" target="_blank" title="https://crates.io/crates/lsp-server">https://crates.io/crates/lsp-server</a></p>



<a name="176123247"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123247" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123247">(Sep 19 2019 at 17:41)</a>:</h4>
<p>I think sharing infrastructure crates like this one is an obvious step in terms of deduplication</p>



<a name="176123263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123263">(Sep 19 2019 at 17:41)</a>:</h4>
<p>I feel like the discussion so far makes clear that we don't have a clear understanding where to go... :(</p>



<a name="176123267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123267">(Sep 19 2019 at 17:41)</a>:</h4>
<p>question is does it solve the lack of resources problem</p>



<a name="176123403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123403">(Sep 19 2019 at 17:43)</a>:</h4>
<p>can we try to skech into a hackmd the various options we've come up with so far</p>



<a name="176123404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123404">(Sep 19 2019 at 17:43)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> what is there extra in the vscode extension that RA doesn't have? (like cargo check)</p>



<a name="176123421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123421">(Sep 19 2019 at 17:43)</a>:</h4>
<p><a href="https://hackmd.io/S5wub4mfToSnnLGvK3I-ew" target="_blank" title="https://hackmd.io/S5wub4mfToSnnLGvK3I-ew">hackmd document</a></p>



<a name="176123483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123483">(Sep 19 2019 at 17:44)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> you are a genius!</p>



<a name="176123491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123491">(Sep 19 2019 at 17:44)</a>:</h4>
<p>I'm going to start going back through the minutes and try to add some notes</p>



<a name="176123514"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123514" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123514">(Sep 19 2019 at 17:44)</a>:</h4>
<blockquote>
<p>you are a genius!</p>
</blockquote>
<p>why thank you, I agree</p>



<a name="176123621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123621">(Sep 19 2019 at 17:45)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> how hard would it be to have the RLS defer name resolution to rust-analyzer?</p>



<a name="176123710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123710">(Sep 19 2019 at 17:46)</a>:</h4>
<p>well now we defer it to rustc, which generates the entire thing RLS relies on</p>



<a name="176123724"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123724" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123724">(Sep 19 2019 at 17:46)</a>:</h4>
<p>do you mean to make it be the backend instead of rustc? I'm not sure I understand</p>



<a name="176123749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123749">(Sep 19 2019 at 17:47)</a>:</h4>
<p>do you mean the 'use RA instead of Racer' option?</p>



<a name="176123872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123872">(Sep 19 2019 at 17:48)</a>:</h4>
<p>Right, if I understood, we discussed that in the context of "completions"</p>



<a name="176123882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123882">(Sep 19 2019 at 17:48)</a>:</h4>
<p>but I wasn't clear if that would also be useful for (e.g.) jump-to-def</p>



<a name="176123896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123896">(Sep 19 2019 at 17:48)</a>:</h4>
<p>I guess I'm partly asking "what does RLS use racer for"</p>



<a name="176123916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123916">(Sep 19 2019 at 17:48)</a>:</h4>
<p>yes - completions and jump-to-def</p>



<a name="176123950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123950">(Sep 19 2019 at 17:49)</a>:</h4>
<p>we could spin up a thread and send LSP requests</p>



<a name="176123985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176123985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176123985">(Sep 19 2019 at 17:49)</a>:</h4>
<p>probably bigger overhead than just setting up Racer in-process but IIUC these are just plumbing issues</p>



<a name="176124107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124107">(Sep 19 2019 at 17:50)</a>:</h4>
<p>I can't think of an architectural hurdle we'd need to overcome</p>



<a name="176124290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124290">(Sep 19 2019 at 17:52)</a>:</h4>
<p>ok, there are various notes in <a href="https://hackmd.io/S5wub4mfToSnnLGvK3I-ew?edit" target="_blank" title="https://hackmd.io/S5wub4mfToSnnLGvK3I-ew?edit">the hackmd</a> now</p>



<a name="176124296"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124296" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124296">(Sep 19 2019 at 17:52)</a>:</h4>
<p>anything missing?</p>



<a name="176124347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124347">(Sep 19 2019 at 17:52)</a>:</h4>
<p>/me looking</p>



<a name="176124367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124367">(Sep 19 2019 at 17:52)</a>:</h4>
<p>I don't have a good handle for how complex the second option would really be</p>



<a name="176124409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124409">(Sep 19 2019 at 17:53)</a>:</h4>
<p>I'm also curious about the "external build system" thing --</p>



<a name="176124417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124417">(Sep 19 2019 at 17:53)</a>:</h4>
<p>is this something that RLS <em>today</em> supports at all?</p>



<a name="176124430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124430">(Sep 19 2019 at 17:53)</a>:</h4>
<p>I was under the impression that RLS was pretty tied to cargo</p>



<a name="176124565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124565">(Sep 19 2019 at 17:54)</a>:</h4>
<p>yep, thankfully</p>



<a name="176124621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124621">(Sep 19 2019 at 17:55)</a>:</h4>
<p>we can get anything that resembles a <code>cargo --build-plan</code> or a set of existing save-analysis files (which now contain invocation information) from which we can derive a build plan</p>



<a name="176124704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124704">(Sep 19 2019 at 17:56)</a>:</h4>
<p>I think it doesn't work well with out-of-process compilation though, as it predates that</p>



<a name="176124715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124715">(Sep 19 2019 at 17:56)</a>:</h4>
<p>so it'd require a bit of tinkering</p>



<a name="176124741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124741">(Sep 19 2019 at 17:56)</a>:</h4>
<p>basically my fear is this: is trying to combine the two some sort of behemoth that will be unwieldy and turn out to be slow, churn battery power or something, etc?</p>



<a name="176124743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124743">(Sep 19 2019 at 17:56)</a>:</h4>
<p>I like the idea of librarification all across the board</p>



<a name="176124762"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124762" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124762">(Sep 19 2019 at 17:56)</a>:</h4>
<p>RLS + RA?</p>



<a name="176124789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124789">(Sep 19 2019 at 17:57)</a>:</h4>
<p>I guess a third alternative is to leave things the way they are <em>but</em> try to find libraries that are worth extracting (I think this is primarily VFS?)</p>



<a name="176124811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124811">(Sep 19 2019 at 17:57)</a>:</h4>
<p>I think it'd be pretty fast (in terms of latency), memory in fact might be worse</p>



<a name="176124823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124823">(Sep 19 2019 at 17:57)</a>:</h4>
<p>I mean it seems like it'd have to be worse</p>



<a name="176124831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124831">(Sep 19 2019 at 17:57)</a>:</h4>
<p>we're running rustc <em>and</em> rust-analyzer, right? :)</p>



<a name="176124836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124836">(Sep 19 2019 at 17:57)</a>:</h4>
<p>I guess maybe not worse than <code>cargo check</code></p>



<a name="176124914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124914">(Sep 19 2019 at 17:58)</a>:</h4>
<p>well true</p>



<a name="176124931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124931">(Sep 19 2019 at 17:58)</a>:</h4>
<p>I imagine we could reverse the fallback and rely on RA first</p>



<a name="176124933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124933">(Sep 19 2019 at 17:58)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yeah, I think just tying two things together will only make resources problem worse, as changes would need to be coordinated between ra and rls</p>



<a name="176124952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124952">(Sep 19 2019 at 17:58)</a>:</h4>
<p>resources = human resources</p>



<a name="176124958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124958">(Sep 19 2019 at 17:58)</a>:</h4>
<p>which would bring the reduced latency and missing features from rustc (as find all refs)</p>



<a name="176124989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176124989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176124989">(Sep 19 2019 at 17:59)</a>:</h4>
<p>I am also skeptical about sharing libraries between RLS and rust-analyzer: everything that can be reasonably shared seems pretty thin</p>



<a name="176125040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125040">(Sep 19 2019 at 17:59)</a>:</h4>
<p>the biggest thing, the defition of protocol types, is already shared via the crate by <span class="user-mention silent" data-user-id="219477">Markus Westerlind</span></p>



<a name="176125052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125052">(Sep 19 2019 at 17:59)</a>:</h4>
<p>right</p>



<a name="176125146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125146">(Sep 19 2019 at 18:00)</a>:</h4>
<p>I think it could potentially decrease the area of focus - RA work could focus on experimenting with the frontend</p>



<a name="176125169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125169">(Sep 19 2019 at 18:00)</a>:</h4>
<p>whereas if one wants to use RA they could use the same VFS LSP and probably extension if we could somehow move more things into Rust and out of TS</p>



<a name="176125189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125189">(Sep 19 2019 at 18:00)</a>:</h4>
<p>I wonder what RLS should focus then, though...</p>



<a name="176125196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125196">(Sep 19 2019 at 18:00)</a>:</h4>
<p>bridging into the rustc queries?</p>



<a name="176125212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125212">(Sep 19 2019 at 18:01)</a>:</h4>
<p>It seems like we can save resources more by sharing between RLS and rustc (removing save-analysis, which might make things simpler?) and between rust-analyzer and rustc (by sharing actualy "what does Rust code mean" logic)</p>



<a name="176125242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125242">(Sep 19 2019 at 18:01)</a>:</h4>
<p>yeah, that's a third bullet we didn't really dive into much</p>



<a name="176125373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125373">(Sep 19 2019 at 18:02)</a>:</h4>
<p>I think removing the save-analysis setup as it is now would be a good step</p>



<a name="176125408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125408">(Sep 19 2019 at 18:03)</a>:</h4>
<p>that sort of makes sense - RLS would ask rustc and RA could experiment with different bits of frontend</p>



<a name="176125463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125463">(Sep 19 2019 at 18:03)</a>:</h4>
<p>hopefully RLS transition could be a one-off thing and we could all focus on the RA/frontend bits =)</p>



<a name="176125494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125494">(Sep 19 2019 at 18:04)</a>:</h4>
<blockquote>
<p>I think removing the save-analysis setup as it is now would be a good step</p>
</blockquote>
<p>I'm not 100% sure what it would be replaced with, but I gotta run I think</p>



<a name="176125534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125534">(Sep 19 2019 at 18:04)</a>:</h4>
<p>maybe we want to discuss more another time?</p>



<a name="176125548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125548">(Sep 19 2019 at 18:04)</a>:</h4>
<p>(or you all can continue, I'll catch up)</p>



<a name="176125582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125582">(Sep 19 2019 at 18:04)</a>:</h4>
<p>I think it makes sense to take a pause and edit that shared markdown document</p>



<a name="176125605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125605">(Sep 19 2019 at 18:04)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> could you add something to it about why we want to move off save analysis.</p>



<a name="176125623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125623">(Sep 19 2019 at 18:05)</a>:</h4>
<p>yeah, will do</p>



<a name="176125625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125625">(Sep 19 2019 at 18:05)</a>:</h4>
<p>?</p>



<a name="176125667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125667">(Sep 19 2019 at 18:05)</a>:</h4>
<p>er, sorry</p>



<a name="176125671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125671">(Sep 19 2019 at 18:05)</a>:</h4>
<p>you mean here?</p>



<a name="176125687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125687">(Sep 19 2019 at 18:05)</a>:</h4>
<p>(thought you mean the doc :p)</p>



<a name="176125759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125759">(Sep 19 2019 at 18:06)</a>:</h4>
<p>so technically the reason we used save-analysis in the first place is because the infra setup was in its infancy and we wanted a working solution then</p>



<a name="176125823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125823">(Sep 19 2019 at 18:07)</a>:</h4>
<p>incremental does help but many times we redo the entire analysis continuously, as user happily types away</p>



<a name="176125860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125860">(Sep 19 2019 at 18:07)</a>:</h4>
<p>nope, in the doc</p>



<a name="176125863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125863">(Sep 19 2019 at 18:07)</a>:</h4>
<p>I think <span class="user-mention" data-user-id="133169">@matklad</span> did mean the doc :)</p>



<a name="176125869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125869">(Sep 19 2019 at 18:07)</a>:</h4>
<p><span aria-label="sad" class="emoji emoji-2639" role="img" title="sad">:sad:</span></p>



<a name="176125940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176125940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176125940">(Sep 19 2019 at 18:08)</a>:</h4>
<p>will do, give me a sec</p>



<a name="176126428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176126428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176126428">(Sep 19 2019 at 18:13)</a>:</h4>
<p><span class="user-mention" data-user-id="153740">@Igor Matuszewski</span> but I'll will answer you here :-)</p>
<p>I agree that save-analysis is just a fundamentally wrong thing for IDEs, so, if we want to maintain RLS, we should probably move off it for this reason.</p>
<p>At the same time, I feel like save-analysis is a pretty important thing for use-cases <em>other</em> than IDEs. Like, being able to dump all that compiler knows about a crate into JSON and then process it with some other tool is a cool use-case. In particular, I feel that <code>cargo-src</code> project might be underused. I also feel like save-analysis might be the right approach for rustdoc 2.0. However, if right now nobody besides RLS uses it, it doesn't make much sense to maintain it.</p>



<a name="176126838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176126838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176126838">(Sep 19 2019 at 18:17)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> we talked about this a bit and I agree =) it's hard to marry it to a single data format, as different tools want different data (cargo src, rustdoc 2.0, callgraph generating tools etc.) so maybe a more stable way to query these things might be more appropriate</p>



<a name="176126902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/rls%20/%20rust-analyzer%20planing/near/176126902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Igor Matuszewski <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/rls.20.2F.20rust-analyzer.20planing.html#176126902">(Sep 19 2019 at 18:18)</a>:</h4>
<p>(then there is a question how stable it is so rustc doesn't need to worry about back-compat <em>that</em> much)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>